package com.xnyzc.lhy.didi.service.operation;

import com.xnyzc.lhy.common.entity.DiDiRv;
import com.xnyzc.lhy.didi.entity.param.operation.BillRefundParam;
import com.xnyzc.lhy.didi.entity.param.operation.CloseOrderParam;
import com.xnyzc.lhy.didi.entity.param.operation.FreeChargeParam;
import com.xnyzc.lhy.didi.entity.param.order.OrderDetailParam;
import com.xnyzc.lhy.didi.entity.param.synchronization.ChangePriceParam;
import com.xnyzc.lhy.didi.entity.param.synchronization.LocationSyncParam;
import com.xnyzc.lhy.didi.entity.param.synchronization.RealtimeFeeSyncParam;
import com.xnyzc.lhy.didi.entity.param.synchronization.StatusCallbackParam;

import java.math.BigDecimal;

public interface CustomerServiceOperationService {

    /**
     * 客服取消订单
     *
     * @param param
     * @return
     */
    DiDiRv getCancelOrder(CloseOrderParam param);

    /**
     * 客服关单
     *
     * @param closeOrderParam
     * @return
     */
    DiDiRv getCloseOrder(CloseOrderParam closeOrderParam);

    /**
     * 直接调用滴滴客服关单（异常情况处理）
     *
     * @param closeOrderParam
     * @return
     */
    DiDiRv getCloseOrderDidiError(CloseOrderParam closeOrderParam);

    /**
     * 客服关单
     *
     * @param closeOrderParam
     * @return
     */
    DiDiRv getCloseOrder2(CloseOrderParam closeOrderParam);

    /**
     * 改价
     *
     * @param changePriceParam
     * @return
     */
    DiDiRv getChangePrice(ChangePriceParam changePriceParam);

    /**
     * 免单
     *
     * @param freeChargeParam
     * @return
     */
    DiDiRv getFreeCharge(FreeChargeParam freeChargeParam);

    /**
     * 退款接口
     *
     * @param billRefundParam
     * @return
     */
    DiDiRv getBillRefund(BillRefundParam billRefundParam);

    /**
     * 退款查询接口
     *
     * @param orderDetailParam
     * @return
     */
    DiDiRv getQueryRefund(OrderDetailParam orderDetailParam);

    void saveOaDBill(String orderNo, BigDecimal drawFee, Long driverId);
}
